/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 86138
 * Date: 2024-04-25
 * Time: 14:23
 */
public class April4_25 {
    public static void main1(String[] args) {
        //代码一
        //float a = 1.12;
        //代码二
        float b = 1.12f;
    }

    public static void main2(String[] args) {
        String str = "hello";
        System.out.println(1 + 2 + str);//表达式加字符串时，先计算表达式，再与字符串进行拼接
        System.out.println(str + 1 + 2);//字符串加表达式是，直接拼接
    }

    public static void main3(String[] args) {
        long a = 3;// 为区分int和long类型，建议：long类型变量的初始值之后加L或者l,更建议L，l会与1混起来
        // long型变量所能表示的范围：这个数据范围远超过 int 的表示范围. 足够绝大部分的工程场景使用.
    }

    public static void main4(String[] args) {
        short a = 4;
        System.out.println(a);
    }

    public static void main5(String[] args) {
        double a = 1.1;
        int b = 3;//
        //代码一
        a = b;//这里b的范围小，a的范围大，b的类型自动向a转换成double
        //代码二
        b = a;//double表示数据范围大，直接将int(4字节)交给double(8字节)会有数据丢失，不安全
    }

    public static void main(String[] args) {
        int a = 10;
        long b = 100L;
        //代码一
        b = a; // int-->long，数据范围由小到大，隐式转换
        //代码二
        a = (int)b; // long-->int, 数据范围由大到小，需要强转，否则编译失败
    }
}
